#if defined(_MSC_VER)
#pragma once
#endif

#ifndef LM_SAMPLER_HALTON_H
#define LM_SAMPLER_HALTON_H

#include "../core/sampler.h"

class HaltonSampler : public Sampler {
public:
	HaltonSampler(int xstart, int xend, int ystart, int yend, int spp, bool lns, bool ts);
	~HaltonSampler();
	int GetMoreSamples(Sample *sample);
	int RoundSize(int size) const { return size; }
	int MaximumSampleCount() { return 1;}
	Sampler *GetSubSampler(int num, int count);
private:
	int wantedSamples, currentSample;
	RNG *rng;
};

#endif	// LM_SAMPLER_HALTON_H